package com.xxxx.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xxxx.server.pojo.Admin;
import com.xxxx.server.pojo.RespBean;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.security.Principal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhoubin
 * @since 2020-10-15
 */
public interface IAdminService extends IService<Admin> {

	/**
	 * 登录
	 * @param username
	 * @param password
	 * @return
	 */
	RespBean login(String username, String password,String code, HttpServletRequest request);

	/**
	 * 根据用户名获取用户信息
	 * @param username
	 * @return
	 */
	Admin getUserByUsername(String username);

	/**
	 * 获取所有操作员
	 * @param keywords
	 * @return
	 */
    List<Admin> getAllAdmins(String keywords);


	/**
	 * 更新操作员角色
	 * @param adminId
	 * @param rids
	 * @return
	 */
	RespBean updateAdminRole(Integer adminId, Integer[] rids);

	/**
	 * 修改用户信息
	 * @param admin
	 */
    void updateAdminInfo(Admin admin);

	/**
	 * "修改用户密码
	 * @param ruleForm
	 */
	void updatePassword(Map<String, Object> ruleForm);

	/**
	 * 更新用户头像
	 * @param principal
	 * @param file
	 * @return
	 */
	Integer updateFace(Principal principal, MultipartFile file) throws IOException;

	/**
	 * 更新图片
	 * @param url
	 * @param id
	 * @return
	 */
    int updateUserface(String url, Integer id);

	/**
	 * 根据用户名获取用户
	 */
	Admin getAdminByUserName(String name);

	void updatetu(String url, HttpServletRequest request);
}
